﻿using Gma.QrCodeNet.Encoding;
using Gma.QrCodeNet.Encoding.Windows.Render;
using System;
using System.Collections.Generic;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;



public class GeneradorCodigo
{



    public String generarCodigo(String nombre, DateTime fecha,List<int> butacas)
    {
        Random numAleatorio = new Random();
        int codigo = numAleatorio.Next(0, 100000); 
       //List<int> list = new List<int>();
       //int codigo = 0; 
       //bool empezo = true;
       //list.Add(0);
       //while (empezo)
       //{
       //    
       //    for (int i = 0; i < list.Count;i++ )
       //    {
       //        if (list[i] == codigo)
       //        {
       //            Random numAleatorio = new Random();
       //            codigo = numAleatorio.Next(0, 100000); 
       //            continue;
       //        }
       //        else
       //        {
       //            list.Add(codigo);
       //            empezo = false;
       //        }
       //
       //    }
       //}
        
        string butaca = "";
        foreach (int i in butacas)
        {
            butaca = butaca + i+" ";

        }
        string datoQR="";
        datoQR += "Nombre: " + nombre + " \nFecha: " + fecha + " \nUbicacion: " + butaca + " \nCodigo: " +codigo;

        generarCodigoQR(datoQR);
        return codigo.ToString();



    }
    public Image generarCodigoQR(string datosQR)
    {


        var qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
        var qrCode = qrEncoder.Encode(datosQR);
        var renderer = new GraphicsRenderer(new FixedModuleSize(5, QuietZoneModules.Two), Brushes.Black, Brushes.White);
        using (var stream = new FileStream("qrcode.png", FileMode.Create))
        renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, stream);

        return Image.FromFile("qrcode.png");

    }

}